|
Menu location |
---|
Modification → Array tools → Array Modify → Array |
Workbenches |
Draft, BIM |
Default shortcut |
None |
Introduced in version |
0.19 |
See also |
Draft PolarArray, Draft CircularArray, Draft PathArray, Draft PathLinkArray, Draft PointArray, Draft PointLinkArray |
The Draft OrthoArray command creates an orthogonal (3-axes) array from a selected object. The command can optionally create a Link array, which is more efficient than a regular array.
The command can be used on 2D objects created with the Draft Workbench or Sketcher Workbench, but also on many 3D objects such as those created with the Part Workbench, PartDesign Workbench or BIM Workbench.
Draft OrthoArray
1
for every direction.0
.0
.0
.
See also: Property editor.
The Draft OrthoArray command, the Draft PolarArray command and the Draft CircularArray command create the same object. This object is derived from a Part Feature object and inherits all its properties (with the exception of some View properties that are not inherited by Link arrays). The following properties are additional unless otherwise stated:
Link
The properties in this group are only available for Link arrays. See Std LinkMake for more information.
Float
)Vector
)VectorList
)BoolList
)PlacementList
)LinkList
)Bool
)LinkList
)LinkSubHidden
)Bool
)Circular array
The properties in this group are hidden for orthogonal arrays and polar arrays.
Integer
): specifies the number of circular layers. Must be at least 2
.Distance
): specifies the distance between circular layers.Integer
): specifies the number of symmetry lines. This number changes the distribution of the elements in the array.Distance
): specifies the distance between elements in the same circular layer. Must be larger than zero.Objects
Enumeration
): specifies the type of array, which can be ortho
, polar
or circular
.LinkGlobal
): specifies the object and edge to be used instead of the DadosAxis and DadosCenter properties. Not used for orthogonal arrays.Link
): specifies the object to duplicate in the array.Integer
): (read-only) specifies the total number of elements in the array.Bool
): specifies whether to expand the array in the Tree view to enable the selection of its individual elements. Only available for Link arrays.Bool
): specifies if overlapping elements in the array are fused or not. Not used for Link arrays.Orthogonal array
The properties in this group are hidden for circular arrays and polar arrays.
VectorDistance
): specifies the interval between elements in the X direction.VectorDistance
): specifies the interval between elements in the Y direction.VectorDistance
): specifies the interval between elements in the Z direction.Integer
): specifies the number of elements in the X direction. Must be at least 1
.Integer
): specifies the number of elements in the Y direction. Must be at least 1
.Integer
): specifies the number of elements in the Z direction. Must be at least 1
.Polar array
The properties in this group are hidden for circular arrays and orthogonal arrays.
Angle
): specifies the aperture of the circular arc. Use 360°
for a full circle.VectorDistance
): specifies the interval between elements in the DadosAxis direction.Integer
): specifies the number of elements in the polar direction.Polar/circular array
The properties in this group are hidden for orthogonal arrays.
Vector
): specifies the direction of the axis of the array.VectorDistance
): specifies the center point of the array. The axis of the array passes through this point. For circular arrays it is an offset from the DadosPlacement of the DadosBase object.
Link
The properties in this group, with the exception of the inherited property, are only available for Link arrays. See Std LinkMake for more information.
Enumeration
)FloatConstraint
)Bool
)FloatConstraint
)Bool
): this is an inherited property that appears in the Selection group for other arraysMaterial
)Base
The properties in this group, with the exception of the inherited property, are only available for Link arrays. See Std LinkMake for more information.
PersistentObject
)MaterialList
)ColorList
)BoolList
)PythonObject
): this is an inherited property.Display Options
The properties in this group are inherited properties. See Part Feature for more information.
Bool
): this property is not inherited by Link arrays.Enumeration
): for Link arrays it can be Link
or ChildView
. For other arrays it can be: Flat Lines
, Shaded
, Wireframe
or Points
Bool
)Bool
)Draft
Enumeration
): not used.Float
): not used.Object style
The properties in this group are not inherited by Link arrays.
See also: Autogenerated API documentation and FreeCAD Scripting Basics.
To create a parametric orthogonal array use the make_array
method (introduced in version 0.19) of the Draft module. This method replaces the deprecated makeArray
method. The make_array
method can create Draft OrthoArrays, Draft PolarArrays and Draft CircularArrays. For each array type one or more wrappers are available.
The main method:
array = make_array(base_object, arg1, arg2, arg3, arg4=None, arg5=None, arg6=None, use_link=True)
The wrappers for orthogonal arrays are:
array = make_ortho_array(base_object,
v_x=App.Vector(10, 0, 0), v_y=App.Vector(0, 10, 0), v_z=App.Vector(0, 0, 10),
n_x=2, n_y=2, n_z=1,
use_link=True)
array = make_ortho_array2d(base_object,
v_x=App.Vector(10, 0, 0), v_y=App.Vector(0, 10, 0),
n_x=2, n_y=2,
use_link=True)
The wrappers for rectangular arrays are:
array = make_rect_array(base_object,
d_x=10, d_y=10, d_z=10,
n_x=2, n_y=2, n_z=1,
use_link=True)
array = make_rect_array2d(base_object,
d_x=10, d_y=10,
n_x=2, n_y=2,
use_link=True)
base_object
is the object to be arrayed. It can also be the Label
(string) of an object in the current document.v_x
, v_y
, and v_z
are the vectors between the base points of the elements in the respective directions.d_x
, d_y
, and d_z
are the distances between the base points of the elements in the respective directions.n_x
, n_y
, and n_z
are the numbers of elements in the respective directions.use_link
is True
the created elements are App Links instead of regular copies.array
is returned with the created array object.Example:
import FreeCAD as App
import Draft
doc = App.newDocument()
rect = Draft.make_rectangle(1500, 500)
v_x = App.Vector(1600, 0, 0)
v_y = App.Vector(0, 600, 0)
array = Draft.make_ortho_array2d(rect, v_x, v_y, 3, 4)
doc.recompute()
To create a non-parametric orthogonal array use the array
method of the Draft module. This method returns None
.
array(objectslist, xvector, yvector, xnum, ynum)
array(objectslist, xvector, yvector, zvector, xnum, ynum, znum)
Example:
import FreeCAD as App
import Draft
doc = App.newDocument()
rect = Draft.make_rectangle(1500, 500)
v_x = App.Vector(1600, 0, 0)
v_y = App.Vector(0, 600, 0)
Draft.array(rect, v_x, v_y, 3, 4)
doc.recompute()